// pages/address/address.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    addressList: [],
    loading: true,
    selectedId: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.loadAddressList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  loadAddressList() {
    this.setData({ loading: true })
    wx.cloud.callFunction({
      name: 'addAddress',
      data: { getList: true },
      success: res => {
        let list = res.result.addresses || []
        list = list.sort((a, b) => new Date(b.created_at || b._id) - new Date(a.created_at || a._id)).slice(0, 10)
        this.setData({ addressList: list, loading: false })
      },
      fail: err => {
        this.setData({ loading: false })
      }
    })
  },

  onAdd() {
    wx.navigateTo({ url: '/pages/address-add/address-add' })
  },

  onEdit(e) {
    const id = e.currentTarget.dataset.id
    wx.navigateTo({ url: `/pages/address/edit?id=${id}` })
  },

  onSelect(e) {
    // 统一把 id 转成字符串再比较，避免类型不一致导致找不到地址
    const id = String(e.currentTarget.dataset.id)
    const address = this.data.addressList.find(item => String(item._id) === id)
    if (address) {
      wx.setStorageSync('selectedAddress', address)
      // 更新页面状态，立即在 UI 上标记选中项
      this.setData({ selectedId: id })
      // 返回前稍作延迟，保证 setData 生效
      /////////////没做存为默认地址的操作/////////////
      setTimeout(() => wx.navigateBack(), 200)
    } else {
      wx.showToast({ title: '地址未找到', icon: 'none' })
    }
  },

  onLongPress(e) {
    // 使用 data-id 传递真实 _id，避免索引在排序/截取后不对应
    const id = String(e.currentTarget.dataset.id)
    wx.showModal({
      title: '删除地址',
      content: '确定要删除该收货地址吗？',
      success: res => {
        if (res.confirm) {
          wx.cloud.callFunction({
            name: 'deleteAddress',
            data: { id },
            success: () => {
              wx.showToast({ title: '删除成功', icon: 'success' })
              this.loadAddressList()
            },
            fail: () => {
              wx.showToast({ title: '删除失败', icon: 'none' })
            }
          })
        }
      }
    })
  },

  onBack() {
    wx.navigateBack()
  }
})